$(function(){
    mq_query_init();
    initTopic();
}) ;
/**
 * 初始化方法
 */
function mq_query_init(){
    /////////////////////////////////下拉列表/////////////////////////
    $('.selectpicker').selectpicker();
    ////////////////////////初始化页面元素事件  start/////////////////////"
    common.timeselectInit($("#btn-time"),mq_query_updateData);//初始化时间控件
    $("#btn-query").click(function(){
        mq_query_updateData();
    });
    // 选择消息中间件更新table
    $("#s_mq_type").change(function(){
        initTopic();
        mq_query_updateData();
    });
    // 选择主题更新table
    $("#s_topic_type").change(function(){
        //initTopic();
        mq_query_updateData();
    });
    ////////////////////////初始化页面元素事件  end/////////////////////"
    //初始化系统树
    //common.sysTreeInit($('#sys_tree'),log_query_updateData,common.TYPE_METADATA_LOG);
    mqTreeInit($('#sys_tree'),mq_query_updateData,"type-fs-metadata-kafkamq","type-fs-metadata-redismq")

    ////////////////////////初始化表格  start/////////////////////
    $('#id_mq').bootstrapTable({
        data : [],
        pagination : true, //显示分页
        //	    onlyInfoPagination:true, // true 只显示总数 不显示分页
        //	    pageSize:5,              //设置当前页显示数目
        //	    pageList:[5,10,15,20,50],
        //	    showFooter:true,
        showRefresh : false, // 设置刷新按钮
        showToggle : true, //
        showColumns : true, //
        striped : true, //
        //	    escape:true,
        //	    showHeader:true,        //是否显示表头
        search : true, //是否显示搜索框
        toolbar : '#toolbar', //toolbar
        columns : [
//        {
//			checkbox : false
//		},
            {
                field : 'showTime',
                title : '时间',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'year',
                title : '年',
                align : 'center',
                visible : false,
                sortable : true
            },
            {
                field : 'month',
                title : '月',
                align : 'center',
                visible : false,
                sortable : true
            },
            {
                field : 'day',
                title : '日',
                align : 'center',
                visible : false,
                sortable : true
            },
            {
                field : 'sysId',
                title : '系统id',
                align : 'center',
                visible : false,
                sortable : true
            },
            {
                field : 'sysName',
                title : '系统名',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'l1Name',
                title : 'l1Name',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'l2Name',
                title : 'l2Name',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'l3Name',
                title : 'l3Name',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'mqTopic',
                title : '主题',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'mqKey',
                title : '关键字',
                align : 'center',
                visible : false,
                sortable : true
            },
            {
                field : 'mqValue',
                title : '消息内容',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'requestType',
                title : '请求了类型',
                align : 'center',
                visible : false,
                sortable : true
            },
            {
                field : 'requestSize',
                title : '请求大小',
                align : 'center',
                visible : true,
                sortable : true
            },
            {
                field : 'host',
                title : '主机',
                align : 'center',
                visible : false,
                sortable : true
            }
        ]
    });
    ////////////////////////初始化表格  end/////////////////////
}
var sysName="";
var l1Name="";
var l2Name="";
var l3Name="";
function mq_query_updateData(sysNameOut,l1NameOut,l2NameOut,l3NameOut) {
    if(sysNameOut!=undefined){
        sysName=sysNameOut;
    }
    if(l1NameOut!=undefined){
        l1Name=l1NameOut
    }
    if(l2NameOut!=undefined){
        l2Name=l2NameOut
    }
    if(l3NameOut!=undefined){
        l3Name=l3NameOut
    }
    var times=$('#btn-time').html();
	var mqType = $('#s_mq_type').val();
	var mqTopic = $('#s_topic_type').val();
    var queryKeyWord = $('#ip_keyWord').val();
    var url='mq/mqQuery.action?sysName='+sysName+"&l1Name="+l1Name+"&l2Name="+l2Name+"&l3Name="+l3Name+"&mqType="+mqType+"&times="+times+"&queryKeyWord="+queryKeyWord+"&mqTopic="+mqTopic;
    //$('#id_mq').bootstrapTable("refresh",{url:url});
    $.ajax({
        type:"post",
        url:url,
        dataType:"json",
        success:function(data){
            var tbData=data.object;
            $('#id_mq').bootstrapTable('load', {data: tbData});
            var count=data.count;
            $("#id-mq-record").html("共"+count+"条记录");
        }
    });
}

function mqTreeInit (sysTreeObj,queryFun,kafkaType,redisType){
    sysTreeObj.jstree({
        'core' : {
            "animation" : 0,
            "check_callback" : true,
            "themes" : { "stripes" : true },
            "data" : {
                "dataType": 'json',
                "url":function(node){
                    var nodeId=node.id;
                    if(nodeId== '#'){
                        return "getRootNode.action";
                    }else{
                        return "mq/getMqChildrenNode.action?kafkaType="+kafkaType+"&redisType="+redisType;
                    }
                },
                "data":function(node){
                    var id=node.id;
                    var ref = sysTreeObj.jstree(true);
                    if(id=='1'){
                        return {"id" : node.id};
                    }else if(id.split("-").length==2){
                        return {"id" : node.id,"sysName":node.text};
                    }else if(id.split("-").length==3){
                        var sysId=ref.get_parent(node);
                        var sysNode=ref.get_node(sysId);
                        return {"id" : node.id,"sysName":sysNode.text,"l1Name":node.text};
                    }else if(id.split("-").length==4){
                        var l1Id=ref.get_parent(node);
                        var l1Node=ref.get_node(l1Id);
                        var sysId=ref.get_parent(l1Node);
                        var sysNode=ref.get_node(sysId);
                        return {"id" : node.id,"sysName":sysNode.text,"l1Name":l1Node.text,"l2Name":node.text};
                    }else{
                        return {"id" : node.id};
                    }
                }
            }
        }
    }).bind('select_node.jstree', function (event, data) {
        var sysNameOut="";
        var l1NameOut="";
        var l2NameOut="";
        var l3NameOut="";
        var node=data.node;
        var id = data.node.id;
        var text = data.node.text;
        var ref = sysTreeObj.jstree(true);
        if(id=='1'){
            sysNameOut="";
            l1NameOut="";
            l2NameOut="";
            l3NameOut="";
        }else if(id.split("-").length==2){
            sysNameOut=text;
            l1NameOut="";
            l2NameOut="";
            l3NameOut="";
        }else if(id.split("-").length==3){
            var sysId=ref.get_parent(node);
            var sysNode=ref.get_node(sysId);
            sysNameOut=sysNode.text;
            l1NameOut=text;
            l2NameOut="";
            l3NameOut="";
        }else if(id.split("-").length==4){
            var l1Id=ref.get_parent(node);
            var l1Node=ref.get_node(l1Id);
            var sysId=ref.get_parent(l1Node);
            var sysNode=ref.get_node(sysId);
            sysNameOut=sysNode.text;
            l1NameOut=l1Node.text;
            l2NameOut=text;
            l3NameOut="";
        }else if(id.split("-").length==5){
            var l2Id=ref.get_parent(node);
            var l2Node=ref.get_node(l2Id);
            var l1Id=ref.get_parent(l2Node);
            var l1Node=ref.get_node(l1Id);
            var sysId=ref.get_parent(l1Node);
            var sysNode=ref.get_node(sysId);
            sysNameOut=sysNode.text;
            l1NameOut=l1Node.text;
            l2NameOut=l2Node.text;
            l3NameOut=text;
        }
        queryFun(sysNameOut,l1NameOut,l2NameOut,l3NameOut);
    });
};

// 加载队列的主题
function initTopic(){
    $('#s_topic_type').append("<option value='allTopic' selected>allTopic</option>");
    // 获得消息type
    var mqType = $('#s_mq_type').val();
    $.ajax({
        url: "mq/getAllTopic.action?mqType="+mqType,
        dataType: "json",
        success: function (data) {
            // 先清空
            $('#s_topic_type').empty();
            $('#s_topic_type').append("<option value='allTopic' selected>allTopic</option>");
            for (var i = 0; i < data.length; i++) {
                $('#s_topic_type').append("<option value='" + data[i].id + "'>" + data[i].text + "</option>");
            }
            // 刷新
            $('#s_topic_type').selectpicker('render');
            $('#s_topic_type').selectpicker('refresh');
        }
    });

};